#include "Texto.h"

using namespace presentacion;

Texto::Texto(std::string fuenteParam, int tamanioFuente, string texto)
{
	TTF_Init();
	this->fuente = TTF_OpenFont(fuenteParam.c_str(), tamanioFuente);
	this->textoAEscribir = texto;

	this->colorTexto.r=0;
	this->colorTexto.g=0;
	this->colorTexto.b=0;
	
	this->rectangulo.x= INICIO_AREA_ESCRITURA_X;
	this->rectangulo.y= INICIO_AREA_ESCRITURA_y;
	this->rectangulo.w=200;
	this->rectangulo.h=200;
};


Texto::~Texto(void){
	if (this->textoSuperficie != NULL)
		SDL_FreeSurface(this->textoSuperficie);
	TTF_CloseFont(this->fuente);
	TTF_Quit();
}

void Texto::EscribirEn(SDL_Surface* pantalla, int adicionalY)
{
		this->rectangulo.y += adicionalY;
		this->textoSuperficie = TTF_RenderText_Solid(this->fuente, textoAEscribir.c_str(), this->colorTexto); 
		SDL_BlitSurface(this->textoSuperficie, NULL, pantalla, &(this->rectangulo));	
};

void Texto::EscribirErrorEn(SDL_Surface* pantalla, int adicionalY)
{
	this->colorTexto.r = 255;
	this->rectangulo.y += adicionalY;
	this->textoSuperficie = TTF_RenderText_Solid(this->fuente, textoAEscribir.c_str(), this->colorTexto); 
	SDL_BlitSurface(this->textoSuperficie, NULL, pantalla, &(this->rectangulo));	
};

void Texto::EscribirInfoEn(SDL_Surface* pantalla, int adicionalY)
{
	this->colorTexto.g = 255;
	this->rectangulo.y += adicionalY;
	this->textoSuperficie = TTF_RenderText_Solid(this->fuente, textoAEscribir.c_str(), this->colorTexto); 
	SDL_BlitSurface(this->textoSuperficie, NULL, pantalla, &(this->rectangulo));	
};